﻿using System;
using System.Runtime.InteropServices;

namespace AIRO.Devices.LockIn
{
    [Guid("133D6D5C-54EE-11DD-BDA9-88E255D89593")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    public interface ILockIn
    {
        [DispId(1)]
        double Gain { get; set; }
        [DispId(2)]
        int FilterSlope { get; set; }
        [DispId(3)]
        double Phase { get; set; }
        [DispId(4)]
        double TimeConstant { get; set; }
        [DispId(5)]
        void Read(out double X, out double Y);
        [DispId(6)]
        int Harmonic { get; set; }
        [DispId(7)]
        void ConfigureReference(double Frequency, bool Internal);
        [DispId(8)]
        double X { get; }
        [DispId(9)]
        double Y { get; }
        [DispId(10)]
        double R { get; }
        [DispId(11)]
        double Theta { get; }
        [DispId(12)]
        double OscillatorOutputLevel { get; set; } 
    }




}
